package com.yanhui.api.image;

import com.yanhui.modal.image.poster.PosterText;
import com.yanhui.modal.image.poster.QrCodeImage;
import com.yanhui.modal.image.poster.SmallImage;
import com.yanhui.utils.base._systemUtils;
import com.yanhui.utils.image._getImage;
import com.yanhui.utils.image._posterUtils;
import com.yanhui.utils.string._stringUtils;

/**
 * @Description 海报生成
 * @Author yanhui
 * @Date 2018-11-12 1:23
 */
public class PosterApi {

    public static void main(String[] args) {
        PosterApi.createPoster("C:/1.jpg","艳听", 10 , "#fcc700","SimSun", 280, 100,
                "http://blog.csdn.net/sinat_15153911","C:/2.jpg",220,760,200,
                "C:/3.jpg",150,260,400,1,"C:/4.jpg");
    }

    /**
     * 通过文字，二维码，logo生成海报
     * @param posterPath 海报背景图片路径
     * @param text 文字
     * @param size 文字大小
     * @param color 文字颜色
     * @param type 字体类型
     * @param textWidth 文字距离海报长度
     * @param textHeight 文字距离海报高度
     * @param url 二维码链接
     * @param qrCodePath 二维码图片路径
     * @param qrCodeWidth 二维码距离海报长度
     * @param qrCodeHeight 二维码距离海报高度
     * @param qrCodeSize 二维码大小
     * @param smallPath logo图片路径
     * @param smallWidth logo图片距离海报长度
     * @param smallHeight logo图片距离海报高度
     * @param smallSize logo图片大小
     * @param circularFlag 是否为圆形 1是 0否
     * @param outputFilePath 输出海报图片的路径
     * @return
     */
    public static boolean createPoster(String posterPath, String text,
                                       int size, String color, String type, int textWidth, int textHeight,
                                       String url, String qrCodePath, int qrCodeWidth, int qrCodeHeight, int qrCodeSize,
                                       String smallPath, int smallWidth, int smallHeight, int smallSize, int circularFlag,
                                       String outputFilePath){
        PosterText[] p = new PosterText[1];
        p[0] = new PosterText(text, size, color, type, textWidth, textHeight);
        QrCodeImage qrCodeImage = new QrCodeImage(url, qrCodePath, qrCodeWidth, qrCodeHeight, qrCodeSize);
        SmallImage smallImage = new SmallImage(smallPath, smallWidth, smallHeight, smallSize, circularFlag);
        _posterUtils.createPoster(posterPath, p, qrCodeImage, smallImage, outputFilePath);
        return true;
    }

    /**
     * 通过文字，二维码，logoUrl生成海报
     * 备注：未测试
     * @param posterUrl 海报背景图片Url路径
     * @param text 文字
     * @param size 文字大小
     * @param color 文字颜色
     * @param type 字体类型
     * @param textWidth 文字距离海报长度
     * @param textHeight 文字距离海报高度
     * @param url 二维码链接
     * @param qrCodeWidth 二维码图片路径
     * @param qrCodeHeight 二维码距离海报高度
     * @param qrCodeSize 二维码大小
     * @param smallUrl logo图片Url路径
     * @param smallWidth logo图片距离海报长度
     * @param smallHeight logo图片距离海报高度
     * @param smallSize logo图片大小
     * @param circularFlag 是否为圆形 1是 0否
     * @param outputFilePath 输出海报图片的路径
     * @return
     */
    public static boolean createPoster(String posterUrl, String text,
                                       int size, String color, String type, int textWidth, int textHeight,
                                       String url, int qrCodeWidth, int qrCodeHeight, int qrCodeSize,
                                       String smallUrl, int smallWidth, int smallHeight, int smallSize, int circularFlag,
                                       String outputFilePath){
        try {
            String path = _systemUtils.getSystemPath("C:/test/","/test/");
            String posterPath = path + "posterPath.jpg";
            String qrCodePath = path + "qrCodePath.jpg";
            String smallPath = path + "smallPath.jpg";
            _getImage.getImageFromNetByUrlFlag(smallUrl, smallPath);
            _getImage.getImageFromNetByUrlFlag(posterUrl, posterPath);
            PosterText[] p = new PosterText[1];
            p[0] = new PosterText(text, size, color, type, textWidth, textHeight);
            QrCodeImage qrCodeImage = new QrCodeImage(url, qrCodePath, qrCodeWidth, qrCodeHeight, qrCodeSize);
            SmallImage smallImage = new SmallImage(smallPath, smallWidth, smallHeight, smallSize, circularFlag);
            _posterUtils.createPoster(posterPath, p, qrCodeImage, smallImage, outputFilePath);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     * 生成二维码
     * 参数请看文档
     * @return
     */
    public String getQrCode(String bg, String fg, String gc, String el, String w,
                                  String m, String text, String logo) {
        if (_stringUtils.isNull(bg)) {
            bg = "f3f3f3";
        }
        if (_stringUtils.isNull(fg)) {
            fg = "ff0000";
        }
        if (_stringUtils.isNull(gc)) {
            gc = "222222";
        }

        if (_stringUtils.isNull(el + "")) {
            el = "l";
        }
        if (_stringUtils.isNull(w + "")) {
            w = 200 + "";
        }
        if (_stringUtils.isNull(m + "")) {
            m = 10 + "";
        }
        if (_stringUtils.isNull(text)) {
            text = "http://47.98.237.162/index";
        }

        String img = "<img src=\"http://qr.liantu.com/api.php?bg=" + bg +
                "&fg=" + fg + "&gc=" + gc + "&el=" + el + "&w=" + w + "&m=" + m + "&text=" + text;

        if (_stringUtils.isNotNull(logo)) {
            img = img + "&logo=" + logo;
        }

        img = img + "\">";
        return img;

    }
    }
